"""
    已经掌握图像就是一个数组，前面我们已经使用ndarray 的切片实现了通道的分离合并，
    现在我们来使用一下OpenCV中封装好的函数实现一下
"""

import cv2
import numpy as np

img = cv2.imread("../images/flower.png")
print(img.shape)

# 通道分离
B, G, R = cv2.split(img)
cv2.imshow("red channel", R)
cv2.waitKey(0)
# 这里运行发现：B G R 能显示出图像，但是你要知道它是一个二维数组，所以只能以灰度图显示
# 若你想显示通道图像，需要新建三通道图，但是只给一个通道赋值
red_channel_img = np.zeros_like(img, dtype=np.uint8)
red_channel_img[:, :, 2] = R
cv2.imshow("red channel", red_channel_img)
cv2.waitKey(0)


# 通道合并
merge_img = cv2.merge([B, G, R])
cv2.imshow("merge_img", merge_img)
cv2.waitKey(0)

# 若只合并 R 和 G，红绿合并是黄色，你能帮我显示出来吗？
B_zero = np.zeros_like(B,dtype=np.uint8)
merge_img = cv2.merge([B_zero, G, R])
cv2.imshow("merge_img", merge_img)
cv2.waitKey(0)